// 这是一个模块，nodejs默认把这个模块私有化了

console.log(arguments.callee.toString());
/* 
function (exports, require, module, __filename, __dirname) {
    // 这是一个模块，nodejs默认把这个模块私有化了

    console.log(arguments.callee.toString());
} 
*/


// 为什么要私有化：
// 避免全局变量污染，避免变量名覆盖冲突
// 为了模块安全，我们不希望这个些内容随意的被外界获取到


// 既然私有化了，外部就访问不到这些数据: 
// 我就必须采用一些方法，让外界可以通过一些形式可以访问这个模块的内容:
// 模块通过module.exports把一些数据或方法或功能暴露出去，供外界访问使用
// 这个隐藏的函数把module.exports这个东西返回出去了，
// 那么我们只要把 想要被外界访问的数据 添加到module.exports，那么我们的这些数据就能够暴露出去

